package com.cainaer.product.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.cainaer.product.domain.ProductAttribute;
import com.cainaer.product.domain.ProductAttributeBindOption;
import com.cainaer.product.domain.ProductAttributeOption;
import com.cainaer.product.domain.ProductSku;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 商品表
 * </p>
 *
 * @author Tina
 * @since 2020-09-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ProductVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 商品自增ID
     */
    private Long productId;

    /**
     * 商品标题
     */
    private String productName;

    /**
     * 商品分类编号
     */
    private Long categoryId;

    /**
     * 商家编号
     */
    private Long shopId;

    /**
     * 配送方式 =>（1、外卖小哥   2、自取）
     */
    private Integer freightId;

    /**
     * 类型编号
     */
    private Long typeId;

    /**
     * 简述
     */
    private String sketch;

    /**
     * 商品描述
     */
    private String intro;

    /**
     * 商品关键字
     */
    private String keywords;

    /**
     * 标签
     */
    private String tags;

    /**
     * 商品型号
     */
    private String marque;

    /**
     * 仓库条码
     */
    private String barcode;

    /**
     * 品牌编号
     */
    private Long brandId;

    /**
     * 虚拟购买量
     */
    private Integer virtualNumber;

    /**
     * 商品价格
     */
    private BigDecimal price;

    /**
     * 市场价格
     */
    private BigDecimal marketPrice;

    /**
     * 可使用积分抵消
     */
    private Integer integral;

    /**
     * 库存量
     */
    private Integer stock;

    /**
     * 库存警告
     */
    private Integer warningStock;

    /**
     * 封面图
     */
    private String pictureUrl;

    /**
     * 画册图片，连产品图片限制为5张，以逗号分割
     */
    private String albumPics;

    /**
     * 产品详情网页内容
     */
    private String pcHtml;

    /**
     * 移动端网页详情
     */
    private String detailMobileHtml;

    /**
     * 促销开始时间
     */
    private String promotionStartTime;

    /**
     * 促销结束时间
     */
    private String promotionEndTime;

    /**
     * 活动限购数量
     */
    private Integer promotionPerLimit;

    /**
     * 以逗号分割的产品服务：1->无忧退货；2->快速退款；3->免费包邮
     */
    private String serviceIds;

    /**
     * 促销类型：0->没有促销使用原价;1->使用促销价；2->使用会员价；3->使用阶梯价格；4->使用满减价格；5->限时购
     */
    private Integer promotionType;

    /**
     * 状态 (0=>上架,1=>下架,2=>预售,0=>未上架)
     */
    private Integer status;

    /**
     * 审核状态( 0审核成功 1审核失败 2未审核 )
     */
    private Integer state;

    /**
     * 是否是套餐(0是/1否)
     */
    private String isPackage;

    /**
     * 是否是积分产品(0是/1否)
     */
    private String isIntegral;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 单位
     */
    private String unit;

    /**
     * 是否是推荐商品(0是/1否)
     */
    private String isRecommend;

    /**
     * 是否支持自称商品
     */
    private Integer isCallOneself;

    /**
     * 商品重量，默认为克
     */
    private BigDecimal weight;

    /**
     * 产品分类名称
     */
    private String productCategoryName;

    /**
     * 自定义或者系统规定好的名称
     */
    private String systemAttributeName;

    /**
     * 品牌名称
     */
    private String brandName;

    /**
     * 删除时间
     */
    private String deletedTime;

    /**
     * 创建时间
     */
    private String createTime;

    /**
     * 更新时间
     */
    private String updatedTime;

    /**
     * 规格ID
     */
    private Long attributeId;

    /**
     * 规格名称
     */
    private String attributeName;


    /**
     * 创建者
     */
    private String createBy;

    /**
     * 更新时间
     */
    private String updateTime;

    /**
     * 更新者
     */
    private String updateBy;


    private Long bindId;

    /**
     * sku编码
     */
    private Long skuId;

    /**
     * 属性选项编码
     */
    private Long optionId;



    /**
     * 系统规格编码
     */
    private Long systemAttributeId;


    /**
     * 上级分类的编号：0表示一级分类
     */
    private Integer parentId;

    /**
     * 名称
     */
    private String categoryName;

    /**
     * 分类级别：0->1级；1->2级
     */
    private Integer level;

    /**
     * 商品数量
     */
    private Integer productCount;

    /**
     * 商品单位
     */
    private String productUnit;

    /**
     * 是否显示在导航栏：0->显示；1->不显示
     */
    private Integer navStatus;

    /**
     * 显示状态：0->显示；1->不显示
     */
    private Integer showStatus;


    /**
     * 图标
     */
    private String icon;

    /**
     * 描述
     */
    private String description;

    /**
     * 商品SKU
     */
    private List<ProductSku> productSkus;


    /**
     * 商品属性
     */
    private List<ProductAttributeOption> productAttributeOption;


}
